package com.txby.wxyyApi.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import io.swagger.annotations.ApiOperation;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration  
@EnableSwagger2  
public class Swagger2Config {  
    @Bean  
    public Docket createRestApi(@Autowired PropertySourceConfig psss){  
    	if(psss.getIsProMode()!=null&&psss.getIsProMode().equals("true")){
    		  return new Docket(DocumentationType.SWAGGER_2) 
				.apiInfo(apiInfo(psss))  
				.select()  
				.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
				.apis(RequestHandlerSelectors.basePackage("com.txby.wrApi.test"))
				.paths(PathSelectors.any())  
				.build();
    	}else{
    		return  new Docket(DocumentationType.SWAGGER_2)  
    				.apiInfo(apiInfo(psss))  
    				.select()  
    				.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
    				.apis(RequestHandlerSelectors.basePackage("com.txby.wxyyApi.component.web"))
    				.paths(PathSelectors.any())  
    				.build();  
    	}
    }  
  
  
    private ApiInfo apiInfo( PropertySourceConfig psss){  
        return new ApiInfoBuilder()  
        .title("restful apis")
        .description("只针对内部开发和测试")
  /*      .termsOfServiceUrl("http://blog.csdn.net")
        .contact(new Contact("jiaojing", "http://test", "qq.com"))
        .version("1.0")*/
//        .version("1.0")
        .build();
    }  
}  
